1. Field of the Invention
This invention relates in general to content management systems performed by computers, and in particular to a method for highly efficient, flexible, data-driven generic filtering system.
2. Description of Related Art
Databases are computerized information storage and retrieval systems. A Relational Database Management System (RDBMS) is a database management system (DBMS) which uses relational techniques for storing and retrieving data. RDBMS software using a Structured Query Language (SQL) interface is well known in the art. The SQL interface has evolved into a standard language for RDBMS software and has been adopted as such by both the American National Standards Organization (ANSI) and the International Standards Organization (ISO).
A typical database management system includes both database files and index files. The database files store data in the rows and columns of tables stored on data pages. In such a table, the rows may correspond to individual records while the columns of the table represent attributes of the records. For example, in a customer information table of a database management system, each row might represent a different customer while each column represents different attributes of the customers, such as the name of each customer, the amount owed by each customer and the cash receipts received from each customer.
Instead of providing for direct sorting and searching of the records in the tables, the database management system relies on the index files which contain information about or pointers to the location of the records in the tables stored in the database files. The index file can be searched and sorted (scanned) much more rapidly than can the database files. An index file is scanned through transactions in which criteria are stipulated for selecting records from a table. These criteria include keys which are the attributes by which the database finds the desired record or records using the index. The actions of a transaction that cause changes to recoverable data objects are recorded in a log. In database management systems all data are stored in tables on a set of data pages that are separate from the index file. A table can have one or more indexes defined on it, each of which is an ordering of keys of the row of the tables and is used to access certain rows when the keys are known.
Large database archives, such as the ones used in audio and video libraries of media and other communications industries and educational institutions, depend on content management systems and their media indexing applications to create accurate indexes in order to locate and manage the archived content. Many database elements are complex nested objects and proper filtering is critical for efficient search and management of these objects in large archives or content collections. Current filtering methods perform positive and negative filtering based on simple lists. Positive filtering is used to include an object. Negative filtering is used to exclude an object. However, the methods using simple lists for comparison operations are too inflexible for the needs of many projects. Other conventional methods include hard coding of the filtering data. While this is the most flexible option, these methods require code changes whenever updates are required.
Therefore, there is a need for a simple, optimized and generic method and system that is both data-driven and very flexible, allowing for both positive and negative filtering in a simple, efficient, easy to implement module of a content management system, such as a database management system.